package workflow;

import java.util.ArrayList;
import java.util.Iterator;

import docente.Docente;




public class Tema
{
  ArrayList<Parrafo> parrafos = new ArrayList<Parrafo>();;
  ArrayList<Ejercicio> ejercicios = new ArrayList<Ejercicio>();;
  Iterator<Parrafo> itParrafos;
  Iterator<Ejercicio> itEjercicios;
    
  Docente autor;
  Generador colaborador;
  Tema temaAnterior;
  String titulo;
  boolean calificacion;
  boolean desaprobado = false;
 
  public boolean isDesaprobado()
  {
    return desaprobado;
  }

  public void desaprobar()
  {
    this.desaprobado = true;
  }
  
  int indice;
  
  public Tema getTemaAnterior()
  {
    return temaAnterior;
  }
  
  public void setTemaAnterior(Tema temaAnterior)
  {
    this.temaAnterior = temaAnterior;
  }
  
  public String getTitulo()
  {
    return titulo;
  }
  public void setTitulo(String tema)
  {
    this.titulo = tema;
  }
  public boolean getCalificacion()
  {
    return calificacion;
  }
  public void setCalificacion(boolean calificacion)
  {
    this.calificacion = calificacion;
  }
  
  public Tema(String titulo, Docente autor)
  {
    this.titulo = titulo;
    this.autor = autor;
    calificacion = false;
    itParrafos = parrafos.iterator();
    itEjercicios = ejercicios.iterator();
  }
  
  public void addParrafo(String text)
  {
    int indice = parrafos.size();
    parrafos.add(new Parrafo(this.getTitulo(), text, indice));
  }
  //reemplaza un parrafo ya existente por el mismo pero modificado
  public void setParrafo(int index, Parrafo unParrafo)
  {
    this.parrafos.set(index,unParrafo);
  }
  
  public void setEjercicio(int index, Ejercicio unEjercicio)
  {
    this.ejercicios.set(index,unEjercicio);
  }
  
  public ArrayList<Parrafo> getParrafos()
  {
    return parrafos;
  }

  public void setParrafos(ArrayList<Parrafo> parrafos)
  {
    this.parrafos = parrafos;
  }

  public ArrayList<Ejercicio> getEjercicios()
  {
    return ejercicios;
  }

  public void setEjercicios(ArrayList<Ejercicio> ejercicios)
  {
    this.ejercicios = ejercicios;
  }

  public void addEjercicio(String text)
  {
    int indice = ejercicios.size();
    ejercicios.add(new Ejercicio(this.getTitulo(), text, indice));
  }
  
  public int getIndice()
  {
    return indice;
  }
  public void setIndice(int indice)
  {
    this.indice = indice;
  }
  public Parrafo sigParrafo()
  {
    return itParrafos.next();
  }
  public boolean hasSigParrafo()
  {
    return itParrafos.hasNext();
  }
  public Generador getColaborador()
  {
    return colaborador;
  }
  public void setColaborador(Generador colaborador)
  {
    this.colaborador = colaborador;
  }
  public Docente getAutor()
  {
    return autor;
  }
  public Ejercicio sigEjercicio()
  {
    return itEjercicios.next();
  }
  public boolean hasSigEjercicio()
  {
    return itEjercicios.hasNext();
  }
  public void aprobar()
  {
    setCalificacion(true);
  }

}